Examples of multi-window graphical user interface environments include Microsoft Windows, Apple Mac OS and, an open source integrated development environments (IDEs) such as Eclipse Workbench, Oracle/Sun's Netbeens and Microsoft.Net. In Eclipse Workbench, for example, features and functionality are typically delivered via individual windows, or a collection of these windows, known as views. A Project Explorer, for example, is a view where a user can interact with Eclipse projects containing application codes; a Problems view is one where a user can use to inspect and review program error messages; and a Properties view allows one to inspect the attributes of a selected object from the Eclipse Workbench. Using Windows/views like these together provide a flexible and powerful set of functions to enable its user to work productively in a modern tool environment.
While multi-window environments are powerful, they are not without usability shortcomings. One such usability shortcoming, for example, is the support for keyboard shortcuts (also known as “key binding” in Eclipse Workbench). In short, unless a shortcut key for a function has its context set to the entire workbench level (this is both unusual and discouraged except for native Eclipse Workbench functionality), a shortcut key bound to a given function is only applicable to the very same view in which the short key is defined. In other words, the shortcut key for “Function A” is only enabled when the window/view containing “Function A” is currently in focus (i.e., active). The exact same shortcut key binding, if exists, can have a completely different behavior if invoked while another window or view is selected. In the latter case - pressing the shortcut key for “Function A” while another window/view is selected—may not invoke “Function A”, but rather “Function X”.
Usability wise, this is problematic for a user since invoking the desired function would require a user to first highlight the correct window/view (or make sure its the current window/view), and then invoke the desired shortcut key. The extra effort required to accomplish such tasks diminishes the convenience and ease of use intended by the provision of shortcut keys in the first place.
Accordingly, a need exists for an improved method and system for enabling a user to invoke a function via its defined shortcut key, regardless of which view is active. This would allow the user to focus on his/her task and work more productively.